home *** CD-ROM | disk | FTP | other *** search
/ Zoom 2 / Zoom - Release 2 (1996)(Active Software)[!].iso / music / utilities / hippoplayer / arexx / hip-arexx-play.rexx < prev   
OS/2 REXX Batch file  |  1995-12-08  |  16KB  |  606 lines

  1. /* HiP-ARexx-Play
  2.    C by Marcel Döring in 1995
  3.    <DonDoringo@GURU.rhein-main.de>
  4. */
  5.  
  6. IF ~SHOW('LIBRARIES','tritonrexx.library') THEN DO
  7.    IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  8.       SAY 'No tritonrexx.library found !'
  9.       SAY 'Available on Aminet !'
  10.       EXIT(10)
  11.    END
  12. END
  13.  
  14. rtv=TritonRexxVersion()
  15.  
  16. Say 'Tritonrexx.library v. 'rtv' found'
  17.  
  18. IF ~SHOW('LIBRARIES','rexxtricks.library') THEN DO
  19.    IF ~ADDLIB('rexxtricks.library',2,-30,0) THEN DO
  20.       SAY 'No Rexxtricks.library found !'
  21.       Say 'Available on Aminet !'
  22.       EXIT(10)
  23.     END
  24. END
  25.  
  26. Say 'Rexxtricks.library found'
  27.  
  28. IF ~SHOW('LIBRARIES','rexxsupport.library') THEN DO
  29.    IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN DO
  30.       SAY 'No Rexxsupport.library available '
  31.       EXIT(10)
  32.     END
  33. END
  34.  
  35. Say 'Rexxsupport.library found'
  36.  
  37. IF ~SHOW('LIBRARIES','rexxsyslib.library') THEN DO
  38.    IF ~ADDLIB('rexxsyslib.library',0,-30,0) THEN DO
  39.       SAY 'No Rexxsyslib.library available '
  40.       EXIT(10)
  41.     END
  42. END
  43.  
  44. kick = GETENV('Kickstart')
  45.  
  46. vewb = GETENV('Workbench')
  47.  
  48. lang = GETENV('Language')
  49.  
  50. Hippo='Work:Hippoplayer/HiP'
  51.  
  52. tv=TritonVersion()
  53.  
  54. SIGNAL ON break_c
  55. SIGNAL ON failure
  56. SIGNAL ON halt
  57. SIGNAL ON ioerr
  58. SIGNAL ON syntax
  59.  
  60. app = TR_CREATEAPP('TRCA_Name     Emergency-Break',
  61.                    'TRCA_LongName "Emergency-Break in scripts with errors"',
  62.                    'TRCA_Info     "Tries to shut everything down.."',
  63.                    'TRCA_Version  1.1',
  64.                    'TRCA_Release  1',
  65.                    'TRCA_Date     2.11.95',
  66.                    'TAG_END')
  67.  
  68. IF app ~= '00000000'x THEN DO
  69.  
  70. appname      = 'HiP-ARexx-Play'
  71. applongname  = 'HiP-ARexx-Play - C1995 by Marcel Döring'
  72. appinfo      = 'ARexx-Player using Hippoplayer'
  73. appversion   = '1.1'
  74. apprelease   = '1'
  75. appdate      = '7.11.1995'
  76.  
  77. app = TR_CREATEAPP('TRCA_Name'     '"'appname'"',
  78.                    'TRCA_LongName' '"'applongname'"',
  79.                    'TRCA_Info'     '"'appinfo'"',
  80.                    'TRCA_Version'  '"'appversion'"',
  81.                    'TRCA_Release'  '"'apprelease'"',
  82.                    'TRCA_Date'     '"'appdate'"',
  83.                    'TAG_END')
  84.  
  85. windowtags =   WindowID(1),
  86.                WindowTitle('HiP-ARexx-Player'),
  87.                  BeginMenu("Project"),
  88.                   MenuItem("A_About",10),
  89.                   MenuItem("I_HiP-Infos",11) ItemBarlabel,
  90.                   MenuItem("S_HiP-Samples Window",8),
  91.                   MenuItem("Y_Iconify",14) ItemBarlabel,
  92.                   MenuItem("Q_Quit HiP & H.A.P.",12),
  93.                   BeginMenu('H.A.P. Control'),
  94.                   MenuItem('L_Load & Play',1),
  95.                   MenuItem('D_Add',7),
  96.                   MenuItem('P_Pause',2),
  97.                   MenuItem('>_Pattern >>',3),
  98.                   MenuItem('<_Pattern <<',4),
  99.                   MenuItem('Z_Zip',5),
  100.                   MenuItem('H_Hide',9),
  101.                   MenuItem('W_Samples Window',8),
  102.                   MenuItem('T_Status...',11),
  103.                   MenuItem('E_Eject',6),
  104.                      'HorizGroupA',
  105.                      'Space',
  106.                      'VertGroupA',
  107.                         'Space',
  108.                         Button("Start HiP !",13),
  109.                         Button("Load & Play",1),
  110.                         Button("Add",7),
  111.                         Button("Pause",2),
  112.                         Button("Pattern >>",3),
  113.                         Button("Pattern <<",4),
  114.                         Button("Zip",5),
  115.                         Button("Hide",9),
  116.                         Button("Samples Window",8),
  117.                         Button("Status...",11),
  118.                         Button("Eject",6),
  119.                         Button("Quit HiP & H.A.P.",12),
  120.                         Button("Iconify H.A.P.",14),
  121.                         Button("About...",10),
  122.                        'Space',
  123.                      'EndGroup',
  124.                      'Space',
  125.                   'EndGroup',
  126.                'EndProject'
  127.  
  128. app = TR_CREATEAPP('TRCA_Name Button')
  129.  
  130. IF app ~= '00000000'x THEN DO
  131.  
  132.    window = TR_OPENPROJECT(app,windowtags)
  133.  
  134.    IF window ~= '00000000'x THEN DO
  135.       ende = 0
  136.  
  137.       DO WHILE ende ~= 1
  138.          CALL TR_WAIT(app,'')
  139.  
  140.         /**** IS GOING TO BE IMPLEMENTED !*****
  141.         IF ~ShowList('P','HIPPOPLAYER') THEN DO
  142.         call notinit
  143.         RETURN
  144.         END
  145.         ***************************************/
  146.            
  147.          DO WHILE TR_HANDLEMSG(app,'event')
  148.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  149.                SELECT
  150.                   WHEN event.trm_id = 1 THEN
  151.                      call playfile
  152.  
  153.                   WHEN event.trm_id = 2 THEN
  154.                       call pause
  155.  
  156.                   WHEN event.trm_id = 3 THEN
  157.                       call fwd
  158.  
  159.                   WHEN event.trm_id = 4 THEN
  160.                       call rwd
  161.  
  162.                   WHEN event.trm_id = 5 THEN
  163.                       call zip
  164.  
  165.                   WHEN event.trm_id = 6 THEN
  166.                       call eject
  167.  
  168.                   WHEN event.trm_id = 7 THEN
  169.                       call add
  170.  
  171.                   WHEN event.trm_id = 8 THEN
  172.                       call sampwind
  173.  
  174.                   WHEN event.trm_id = 9 THEN
  175.                       call hide
  176.  
  177.                   WHEN event.trm_id = 10 THEN
  178.                       call about
  179.  
  180.                   WHEN event.trm_id = 11 THEN
  181.                       call getinfos
  182.  
  183.                   WHEN event.trm_id = 12 THEN
  184.                       call quit
  185.  
  186.                   WHEN event.trm_id = 13 THEN
  187.                       call starthip
  188.  
  189.                   WHEN event.trm_id = 14 THEN
  190.                       call iconify
  191.                   OTHERWISE
  192.                      NOP
  193.                END
  194.             END
  195.  
  196.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN
  197.              IF Iconified~=YO THEN
  198.               ende = 1
  199.              ELSE
  200.               CALL UnIconify
  201.          END
  202.       END
  203.  
  204.      CALL TR_CLOSEPROJECT(window)
  205.    END
  206.    CALL TR_DELETEAPP(app)
  207.    EXIT
  208. END
  209.  
  210. playfile:                                          /* Load & Play a File */
  211. mainwindow    = '00000000'x
  212. taglist = LoadFile('HiP-ARexx Select a File...','Play that one','SYS:','') 'ASLFR_PubScreenName' mainwindow
  213. IF ASL_REQUESTFILE(mainwindow,'destvar',taglist) THEN DO
  214.    DO i = 1 TO destvar.0
  215.    SAY destvar.i
  216.    ADDRESS 'HIPPOPLAYER'
  217.    PLAY destvar.i
  218.    PROT=GETPROTECTION(destvar.i)
  219.    RETURN
  220.    END
  221. END
  222.  
  223. RETURN
  224.  
  225. FWD:
  226. ADDRESS 'HIPPOPLAYER'                              /* Pattern forward */
  227. FFWD
  228. RETURN
  229.  
  230. RWD:
  231. ADDRESS 'HIPPOPLAYER'                              /* Pattern rewind */
  232. REW
  233. RETURN
  234.  
  235. PAUSE:
  236. Dummy=No                                           /* Dummy-Loop */
  237. IF Dummy=No THEN DO
  238.     If STAT=YO THEN DO
  239.          ADDRESS 'HIPPOPLAYER'
  240.          'CONT'
  241.        STAT=NO
  242.     RETURN
  243. END
  244.  
  245. ADDRESS 'HIPPOPLAYER'
  246. 'STOP'
  247. STAT=YO
  248. RETURN
  249. END
  250.  
  251. Zip:
  252. Dummy2=No
  253. IF Dummy2=No THEN DO
  254.     IF STAT2=YO THEN DO
  255.          ADDRESS 'HIPPOPLAYER'
  256.          'ZIP 1'
  257.        STAT2=NO
  258.     RETURN
  259. END
  260.  
  261. ADDRESS 'HIPPOPLAYER'
  262. 'ZIP 0'
  263. STAT2=YO
  264. RETURN
  265. END
  266.  
  267. Eject:
  268. ADDRESS 'HIPPOPLAYER'
  269. 'EJECT'
  270. RETURN
  271. END
  272.  
  273. Add:
  274. if ende ~= 1 THEN DO
  275. mainwindow    = '00000000'x
  276. taglist = LoadFile('HiP-ARexx Add a File...','Please select...','SYS:','') 'ASLFR_PubScreenName' mainwindow
  277. IF ASL_REQUESTFILE(mainwindow,'destvar',taglist) THEN DO
  278.    DO i = 1 TO destvar.0
  279.    SAY destvar.i
  280.    ADDRESS 'HIPPOPLAYER'
  281.    ADD destvar.i
  282.    PROT=GETPROTECTION(destvar.i)
  283.    RETURN
  284.    END
  285. END
  286.  
  287. RETURN
  288.  
  289. Quit:
  290. ADDRESS 'HIPPOPLAYER'
  291. 'QUIT'
  292. CALL TR_DELETEAPP(app)
  293. EXIT
  294.  
  295. sampwind:
  296. ADDRESS 'HIPPOPLAYER'
  297. Samples
  298. RETURN
  299. END
  300.  
  301. hide:
  302. Dummy3=No
  303. IF Dummy3=No THEN DO
  304.     IF STAT3=YO THEN DO
  305.          ADDRESS 'HIPPOPLAYER'
  306.          'HIDE 1'
  307.        STAT3=NO
  308.     RETURN
  309. END
  310.  
  311. ADDRESS 'HIPPOPLAYER'
  312. 'HIDE 0'
  313. STAT3=YO
  314. RETURN
  315. END
  316. EXIT
  317.  
  318. about:
  319.    CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
  320.          BeginRequester('About HiP-ARexx-Play C by Marcel Döring','TRWP_CENTERDISPLAY'),
  321.             'VertGroupA',
  322.                'Space',
  323.                'HorizSeparator',
  324.                'Space',
  325.                CenteredText3('---->-->-->> HiP-ARexx-Player <<--<--<----'),
  326.                'Space',
  327.                CenteredText('Public Domain'),
  328.                'Space',
  329.                CenteredText('Version:'appversion),
  330.                'Space',
  331.                CenteredText('C by Marcel Döring `95'),
  332.                'Space',
  333.                CenteredText('Contact me:'),
  334.                'Space',
  335.                CenteredText('Bleifuss@XOX.commo.mcnet.de'),
  336.                'Space',
  337.                'HorizSeparator',
  338.                'Space',
  339.                CenteredText('Call the XOX: ++49 (0)69/541681'),
  340.                'Space',
  341.                'HorizSeparator',
  342.                'Space',
  343.                CenteredText3('Libraries:'),
  344.                'Space',
  345.                CenteredText('Using Tritonrexx.library v.' rtv 'C by Jürgen Kohrmeyer.'),
  346.                'Space',
  347.                CenteredText('Using Triton.library v.' tv 'C by Stefan Zeiger.'),
  348.                'Space',
  349.                CenteredText('Using RexxTricks.library C by Jürgen Kohrmeyer.'),
  350.                'Space',
  351.                'HorizSeparator',
  352.                'Space',
  353.             'EndGroup',
  354.             'BeginRequesterGads',
  355.             CenteredButtonRE('Okay',10000),
  356.          'EndRequester')
  357.  
  358.    CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
  359.          BeginRequester('About TriTon','TRWP_CENTERDISPLAY'),
  360.             'VertGroupA',
  361.                'Space',
  362.                'HorizSeparator',
  363.                'Space',
  364.                CenteredText3('About TriTon:'),
  365.                'Space',
  366.                CenteredText('This application uses the Triton GUI creation system C by Stefan Zeiger'),
  367.                'Space',
  368.                'HorizSeparator',
  369.                'Space',
  370.                CenteredText('**********************************************'),
  371.                'Space',
  372.                'Space',
  373.                CenteredText('Triton'),
  374.                'Space',
  375.                'Space',
  376.                CenteredText('An object oriented GUI creation system.'),
  377.                'Space',
  378.                'Space',
  379.                CenteredText('Release 1.3'),
  380.                'Space',
  381.                'Space',
  382.                CenteredText('(c) 1993-1995 Stefan Zeiger'),
  383.                'Space',
  384.                'Space',
  385.                CenteredText('**********************************************'),
  386.                'Space',
  387.                'HorizSeparator',
  388.                'Space',
  389.             'EndGroup',
  390.             'BeginRequesterGads',
  391.             CenteredButtonRE('Important',10000),
  392.          'EndRequester')
  393.    RETURN
  394.  
  395. NotInit:
  396. CALL TR_EASYREQUEST(app,'ATTENTION !'||'0a'x||'HippoPlayer is not running,'||'0a'x||'You can start it from HiP-ARexx-Play or directly, but'||'0a'x||'Don`t use HiP-ARexx-Play`s other functions without HiP running !','I`ll do that','TREZ_LockProject' C2D(window) 'TAG_END')
  397. RETURN
  398. END
  399.  
  400. GetInfos:
  401.  
  402. options results
  403.  
  404. address 'HIPPOPLAYER'
  405. get play
  406. if result == 1 then do
  407. play = "HiP is playing"
  408. end
  409. else do
  410. play = "HiP is not playing"
  411. end
  412.  
  413. get name
  414. NAME = "Loaded module:" result
  415.  
  416. get fnam
  417. FNAM = "Full name of the loaded module:" result
  418.  
  419. get type
  420. TYPE = "Type of the loaded module:" result
  421.  
  422. get size
  423. SIZE = "Size of the loaded module:" result
  424.  
  425. get comm
  426. COMM = "Filecomment for the loaded module:" result
  427.  
  428. get curr
  429. CURR = "Number of the loaded module:" result
  430.  
  431. get csng
  432. CSNG = "Current song:" result
  433.  
  434. get nsng
  435. NSNG = "Number of songs:" result
  436.  
  437. get cspo
  438. CSPO = "Current songposition:" result
  439.  
  440. get mspo
  441. MSPO = "Maximum songposition:" result
  442.  
  443. get cfil
  444. CFIL = "Chosen file number:" result
  445.  
  446. get cnam
  447. CNAM = "Chosen file name:" result
  448.  
  449. get nfil
  450. NFIL = "Files in list:" result
  451.  
  452. PR0T = "Protection-bits:" PROT
  453.  
  454. KIKK = "Kickstart-version:" KICK
  455.  
  456. WBVE = "Workbench-version:" VEWB
  457.  
  458. CITY = "System-language:" LANG
  459.  
  460.    CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
  461.          BeginRequester('HiP-Status','TRWP_CENTERDISPLAY'),
  462.             'VertGroupA',
  463.                'Space',
  464.                CenteredText3('HiP-Status'),
  465.                'Space',
  466.                'HorizSeparator',
  467.                'Space',
  468.                CenteredText(PLAY),
  469.                'Space',
  470.                CenteredText(NAME),
  471.                'Space',
  472.                CenteredText(FNAM),
  473.                'Space',
  474.                CenteredText(TYPE),
  475.                'Space',
  476.                CenteredText(SIZE),
  477.                'Space',
  478.                CenteredText(COMM),
  479.                'Space',
  480.                CenteredText(PR0T),
  481.                'Space',
  482.                CenteredText(CURR),
  483.                'Space',
  484.                CenteredText(CSNG),
  485.                'Space',
  486.                CenteredText(NSNG),
  487.                'Space',
  488.                CenteredText(CSPO),
  489.                'Space',
  490.                CenteredText(MSPO),
  491.                'Space',
  492.                CenteredText(CFIL),
  493.                'Space',
  494.                CenteredText(NFIL),
  495.                'Space',
  496.                CenteredText(CNAM),
  497.                'Space',
  498.                'HorizSeparator',
  499.                'Space',
  500.                CenteredText3('HiP-Status'),
  501.                'Space',
  502.             'EndGroup',
  503.             'BeginRequesterGads',
  504.             CenteredButtonRE('Great!',10000),
  505.          'EndRequester')
  506.  
  507.    CALL TR_AUTOREQUEST(app,window,PubScreenName('workbench'),
  508.          BeginRequester('Status','TRWP_CENTERDISPLAY'),
  509.             'VertGroupA',
  510.                'Space',
  511.                CenteredText3('Status'),
  512.                'Space',
  513.                'HorizSeparator',
  514.                'Space',
  515.                CenteredText(KIKK),
  516.                'Space',
  517.                CenteredText(WBVE),
  518.                'Space',
  519.                CenteredText(CITY),
  520.                'Space',
  521.                'HorizSeparator',
  522.                'Space',
  523.                CenteredText3('Status'),
  524.                'Space',
  525.             'EndGroup',
  526.             'BeginRequesterGads',
  527.             CenteredButtonRE('Okay',10000),
  528.          'EndRequester')
  529.  
  530. DROP PLAY NAME FNAM TYPE SIZE COMM PR0T CURR CSNG NSNG CSPO MSPO CFIL NFIL CNAM KIKK WBVE CITY
  531. RETURN
  532.  
  533. starthip:
  534. Say 'Hippopath is:' Hippo
  535. Say 'Trying to start HiP...'
  536. ADDRESS COMMAND Hippo
  537. RETURN
  538. END
  539.  
  540. e-break:
  541. CALL TR_DELETEAPP(app)
  542. END
  543. EXIT(0)
  544.  
  545. iconify:
  546. dummywindow = TR_OPENPROJECT(app,WindowID(1000) WindowTitle('H.A.P. C by Marcel Döring `95  iconified') PubScreenName('workbench') 'EndProject')
  547.  
  548. IF dummywindow ~= '00000000'x THEN DO
  549.    CALL TR_CLOSEPROJECT(window)
  550.    Iconified=YO
  551. END
  552. ELSE
  553. CALL TR_EASYREQUEST(app,'ATTENTION !'||'0a'x||'Couldn`t iconify H.A.P. !'||'0a'x||'Version:'appversion,'_Oops','TREZ_Title "Error !"' 'TREZ_LockProject' C2D(window) 'TAG_END')
  554. RETURN
  555.  
  556. uniconify:
  557. CALL TR_CLOSEPROJECT(dummywindow)
  558. dummywindow = '00000000'x
  559. window = TR_OPENPROJECT(app,windowtags)
  560.  
  561. IF window = '00000000'x THEN
  562. quit('Error! Couldn`t open window !!',10)
  563.  
  564.    Iconified=NO
  565. RETURN
  566.  
  567. /***************IS GOING TO BE IMPLEMENTED !*******************************
  568.  
  569. openlocale:
  570. uselocale = TRUE
  571.  
  572. IF ~SHOW('LIBRARIES','locale.library') THEN
  573.    IF ~ADDLIB('locale.library',-10,-30,0) THEN
  574.       uselocale = FALSE
  575.  
  576. IF ~loadrexx(progdir,'HiP-ARexx-Play.strings','') THEN
  577.    quit('Error reading file "HiP-ARexx-Play.strings"!'),10)
  578.  
  579. IF uselocale THEN DO
  580.    catalogfile = 'catalogs/deutsch/HAP.catalog'
  581.  
  582.    IF RIGHT(progdir,1) = ':' THEN
  583.       catalog = OPENCATALOG(progdir||'catalogs/deutsch/HAP.catalog','deutsch',0)
  584.    ELSE
  585.       catalog = OPENCATALOG(progdir||'/catalogs/deutsch/HAP.catalog','deutsch',0)
  586.  
  587.    IF catalog = 0 THEN
  588.       catalog = OPENCATALOG('HAP.catalog','deutsch',0)
  589. END
  590. RETURN
  591.  
  592. ***************************************************************************/
  593.  
  594. break_c:
  595. failure:
  596. halt:
  597. ioerr:
  598. syntax:
  599. SAY '+++ Error!' rc 'in Line' sigl '-' ERRORTEXT(rc)
  600. Say 'Trying to close complete script...'
  601. SAY SOURCELINE(sigl)
  602. IF app ~= '00000000'x THEN
  603. CALL TR_DELETEAPP(app)
  604.  
  605. EXIT(10)
  606.